#创建列表

#1.直接使用字面值来创建
#  []就表示一个 空的列表
# a=[]
# print(type(a))

#2.使用list()来创建
# b=list()
# print(type(b))

#3.可以在创建列表的时候，在[]中指定列表的初始值
#  元素之间使用，来分隔
# a=[1,2,3,4]
# print(a)

#4.可以在同一个列表中放不同类型的变量
# a=[1,'hell',True,[1,2,3]]
# print(a)

#5.使用下标来访问列表元素
# a=[1,2,3,4]
# print(a[2])

#6.使用下标来修改列表元素
# a=[1,2,3,4]
# a[2]=100
# print(a)

#7.超出下标有效范围，就会出现异常
# a=[1,2,3,4]
# a[100]=0
# print(a)

#8.可以使用内建函数 len 来获取列表的长度（元素个数），和字符串类似
# a=[1,2,3,4]
# print(len(a))

#9.python中的下标，其实还可以携程负数！！！
#例如携程-1，其实等价于 len(a)-1
# a=[1,2,3,4]
# print(a[len(a)-1])
# #-1就是倒数第一个元素
# print(a[-1])

#10.切片操作的基本使用
# a=[1,2,3,4]
# print(a[1:3])

#11.使用切片的时候，省略边界
# a=[1,2,3,4]
# #省略后边界，意思是从开始位置，一直取到整个列表结束
# print(a[1:])
# #省略前边界，意思是从列表的0号元素开始取，一直取到结束的后边界
# print(a[:2])
# #此处切片的下标也可以写成负数
# print(a[:-1])
# #还可以把开始边界和结束边界，都省略掉 ！得到的还是列表本身
# print(a[:])

#12.带有步长的切片操作
#a=[1,2,3,4,5,6,7,8,9,0]
# print(a[::1]) #1,2,3,4,5,6,7,8,9,0
# print(a[::2]) #1,3,5,7,9
# print(a[::3]) #1,4,7,0
# print(a[1:-1:2]) #2,4,6,8

#13.步长的数值还可以是负数，当步长为负数的时候，意思是从后往前来取元素
# print(a[::-1]) #0,9,8,7,6,5,4,3,2,1
# print(a[::-2]) #0,8,6,4,2

#14.当切片中的范围超出有效下标后，不会出现异常！而是尽可能的把符合要求的元素给获取到
# a=[1,2,3,4,5,6,7,8,9,0]
# print(a[1:100])

#15.使用for循环来遍历列表
# a=[1,2,3,4,5]
# for elem in a:
#     #print(elem)
#     elem+=10
# print(a)
#
#
# #16.使用for循环来遍历，通过下标的方式
# a=[1,2,3,4,5]
# for i in range(0,len(a)):
#     #print(a[i])
#     a[i]+=10
# print(a)

#17.使用while循环来遍历
# a=[1,2,3,4,5]
# i=0
# while i<len(a):
#     print(a[i])
#     i+=1

#18.使用append往列表末尾新增一个元素
# a=[1,2,3,4]
# a.append(5)
# a.append('hello')
# print(a)

# b=[5,6,7,8]
# b.append('world')
# print(b)

#19.还可以使用inset方法，往列表的任意位置来新增元素~
# a=[1,2,3,4]
# a.insert(1,'hello')
# a.insert(10,'world')
# print(a)

#20.使用 in 来判定某个元素是否在列表中存在
# a=[1,2,3,4]
# print(1 in a)
# print(10 in a)
# print(1 not in a)
# print(10 not in a)

#21.使用index 方法，来判定，当前元素在列表中的位置，得到了一个 下标
# a=[1,2,3,4]
# print(a.index(2))
# print(a.index(4))
# print(a.index(10)) #报错直接 其他编程语言是返回-1，但是在python中-1的合法的，所以直接报错比较好

#22.使用pop 删除列表中的最末尾的元素
# a=[1,2,3,4]
# a.pop()
# print(a)

#23.使用 pop 还能删除任意位置的元素 ，pop的参数可以传一个下标过去
# a=[1,2,3,4]
# a.pop(1)
# print(a)

#24.使用 remove 方法，可以按照值来进行删除
# a=['aa','bb','cc','dd']
# a.remove('cc')
# print(a)

#25.使用+针对两个列表进行拼接
# a=[1,2,3,4]
# b=[5,6,7,8]
# c=a+b
# print(c)
# print(a)
# print(b)

#26.使用extend 来进行拼接
# 这个拼接是把最后一个列表的内容拼接到前一个列表里面~
# a=[1,2,3,4]
# b=[5,6,7,8]
# a.extend(b)
# print(a)
# print(b)

#27.使用 += 来进行拼接
# a=[1,2,3,4]
# b=[5,6,7,8]
# a+=b
# print(a)
# print(b)

#28.创建元组
# a=()
# print(type(a))
# b=tuple()
# print(type(b))

#29.创建元组的时候，指定初始值
# a=(1,2,3,4)
# print(a)

#30.元组中的元素也可以是任意类型的
# a=(1,2,'hello',True,[1,2,3])
# print(a)

#31.通过下标来访问元组中的元素，下标也是从0开始买到len-1结束的
# a=(1,2,3,4)
# print(a[1])
# print(a[-1])

#32.通过切片来获取元组中的一个部分
# a=(1,2,3,4)
# print(a[1:3])

#33.也同样可以使用 for 循环等方式来进行变量元素
# a=(1,2,3,4)
# for elem in a:
#     print(elem)

#34.可以使用in 来判定元素是否存在，使用index 查找元素的下标
# a=(1,2,3,4)
# print(1 in a)
# print(a.index(4))

#35.可以使用 + 来拼接两个元组
# a=(1,2,3)
# b=(4,5,6)
# print(a+b)

# 36.元组只是支持“读”操作，不能支持“修改”类操作
# a=(1,2,3,4)
# # a[0]=100
# a.ppend(5)

#37.当进行多元赋值的时候，其实本质上是按照元组的方式进行工作的~
def getPoint():
    x=10
    y=20
    return x,y


x,y=getPoint()
print(type(getPoint()))